home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / upnp_xp.nasl < prev    next >
Text File  |  2005-03-31  |  3KB  |  117 lines

  1. #
  2. # This script was written by John Lampe...j_lampe@bellsouth.net
  3. #
  4. # See the Nessus Scripts License for details
  5. #
  6.  
  7. if(description)
  8. {
  9.  script_id(10829);
  10.  script_bugtraq_id(3723);
  11.  script_version("$Revision: 1.13 $");
  12.  script_cve_id("CVE-2001-0876");
  13.  name["english"] = "scan for UPNP hosts";
  14.  script_name(english:name["english"]);
  15.  
  16.  desc["english"] = "
  17. Microsoft Universal Plug n Play is running on this machine.  This service is dangerous for many
  18. different reasons.  
  19.  
  20.  
  21. Solution: To disable UPNP, see http://grc.com/UnPnP/UnPnP.htm
  22. Risk factor : High";
  23.  
  24.  script_description(english:desc["english"]);
  25.  
  26.  summary["english"] = "UPNP scan";
  27.  script_summary(english:summary["english"]);
  28.  
  29.  script_category(ACT_GATHER_INFO);
  30.  
  31.  
  32.  script_copyright(english:"This script is Copyright (C) 2001 by John Lampe");
  33.  family["english"] = "Windows";
  34.  script_family(english:family["english"]);
  35.  script_require_ports(5000);
  36.  exit(0);
  37. }
  38.  
  39.  if(islocalhost())exit(0);
  40. #script based on eeye advisory Multiple Remote Windows XP/ME/98 Vulnerabilities
  41.  
  42.   myaddr = this_host();
  43.   dstaddr = get_host_ip();
  44.   returnport = 80;
  45.  
  46.   mystring = string("NOTIFY * HTTP/1.1\r\n");
  47.   mystring = mystring + string("HOST: ", "239.255.255.250" , ":1900\r\n");
  48.   mystring = mystring + string("CACHE-CONTROL: max-age=10\r\n");
  49.   mystring = mystring + string("LOCATION: http://" , myaddr, ":" , returnport , "/foo.xms\r\n");
  50.   mystring = mystring + string("NT: urn:schemas-upnp-org:device:InternetGatewayDevice:1\r\n");
  51.   mystring = mystring + string("NTS: ssdp:alive\r\n");
  52.   mystring = mystring + string("SERVER: NESSUS/2001 UPnP/1.0 product/1.1\r\n");
  53.   mystring = mystring + string("USN: uuid:NESSUS\r\n\r\n");
  54.   len = strlen(mystring);
  55.  
  56.   ippkt = forge_ip_packet(
  57.         ip_hl   :5,
  58.         ip_v    :4,
  59.         ip_tos  :0,
  60.         ip_len  :20,
  61.         ip_id   :31337,
  62.         ip_off  :0,
  63.         ip_ttl  :64,
  64.         ip_p    :IPPROTO_UDP,
  65.         ip_src  :myaddr
  66.         );
  67.  
  68.  
  69.   udppacket = forge_udp_packet(
  70.         ip      :ippkt,
  71.         uh_sport:1900,
  72.         uh_dport:1900,
  73.         uh_ulen :8 + len,
  74.         data    :mystring
  75.         );
  76.  
  77.   for(i=0;i<5;i++)
  78.   {
  79.   rpkt = send_packet(udppacket, pcap_active:FALSE);
  80.  
  81.   ippkt2 = forge_ip_packet(
  82.         ip_hl   :5,
  83.         ip_v    :4,
  84.         ip_tos  :0,
  85.         ip_len  :20,
  86.         ip_id   :31338,
  87.         ip_off  :0,
  88.         ip_ttl  :64,
  89.         ip_p    :IPPROTO_TCP,
  90.         ip_src  :myaddr
  91.         );
  92.  
  93.   tcppacket = forge_tcp_packet(ip:ippkt2,
  94.                                th_sport: 999,
  95.                                th_dport: 1900,
  96.                                th_flags:TH_RST,
  97.                                th_seq: 3984,
  98.                                th_ack: 0,
  99.                                th_x2: 0,
  100.                                th_off: 0,
  101.                                th_win: 8192,
  102.                                th_urp: 0);
  103.  
  104.   filter = string("tcp and src " , dstaddr , " and dst port ", returnport);
  105.   rpkt2 = send_packet(tcppacket, pcap_active:TRUE, pcap_filter:filter, pcap_timeout:1);
  106.   if(rpkt2)
  107.   {
  108.   flags = get_tcp_element(tcp:rpkt2, element:"th_flags");
  109.  
  110.   if (flags & TH_SYN) {
  111.        security_hole(port:1900,protocol:"udp");
  112.   }
  113.   exit(0);     
  114.   }
  115.   }
  116.  
  117.